package com.logistic.server.service;

import com.logistic.server.entity.common.PageRequest;
import com.logistic.server.entity.common.PageResponse;
import com.logistic.server.entity.pojo.SysDictType;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 字典类型 服务类
 * </p>
 *
 * @author swen
 * @since 2021-10-25
 */
public interface ISysDictTypeService extends IService<SysDictType> {

    /**
     * 字典类型列表
     * @param dictType 字典类型
     * @param pageRequest 分页参数
     * @return list
     */
    PageResponse<SysDictType> selectPageDictTypeList(SysDictType dictType, PageRequest pageRequest);

    /**
     * 新增字典类型
     * @param dictType 字典类型
     */
    void insertDictType(SysDictType dictType);

    /**
     * 校验字典类型称是否唯一
     *
     * @param dictType 字典类型
     * @return 结果
     */
    String checkDictTypeUnique(SysDictType dictType);

    /**
     * 修改字典类型
     * @param dictType 字典类型
     */
    void updateDictType(SysDictType dictType);

    /**
     * 根据字典类型ID查询信息
     *
     * @param dictId 字典类型ID
     * @return 字典类型
     */
    SysDictType selectDictTypeById(Long dictId);

    /**
     * 删除字典类型
     * @param ids ids
     */
    void deleteDictTypeByIds(Long[] ids);

    /**
     * 刷新缓存
     */
    void resetDictCache();

    /**
     * 获取字典类型下拉
     * @return list
     */
    List<SysDictType> selectDictTypeAll();

    /**
     * 加载字典缓存数据
     */
    void loadingDictCache();

    /**
     * 清空字典缓存数据
     */
    void clearDictCache();
}
